import Vue from 'vue'
// 1. 引入安装好的路由
import VueRouter from 'vue-router'
import Home from '@/11-路由/Home.vue'
import NotFoundPage from '@/11-路由/404.vue'
import Login from '@/11-路由/Login.vue'

// 2. 注册路由
Vue.use(VueRouter)

// 3. 实例化路由对象
// route 规则
// router 路由
const router = new VueRouter({
  // 默认就是hash地址
  // history 不携带#
  // mode: 'history',
  // 4. 配置路由规则
  routes: [
    {
      path: '/',
      // 路由重定向
      redirect: '/home'
    },
    {
      path: '/login',
      component: Login
    },
    {
      path: '/home',
      component: Home,
      meta: {
        title: '首页'
      }
    },
    {
      // 命名路由
      name: 'home',
      // 设置hash路径
      path: '/home/:name/:age',
      // 设置对应组件
      component: Home,
      // 开启父传子模式
      props: true,
      meta: {
        title: '首页'
      }
    },
    {
      path: '*',
      component: NotFoundPage
    }
  ],
  // 设置高亮的样式名称
  linkActiveClass: 'active'
})

// to 是即将进入的路由对象
// from 来至于那个路由对象
// next 放行，也可以用于路由跳转  next('/home')
// router.beforeEach((to, from, next) => {
//   // next()
//   // 判断是否是登录页面
//   if (to.path !== '/login') {
//     // console.log('home')
//     // 如果不是登录页面且携带token 放行
//     if (localStorage.getItem('token')) {
//       next()
//     } else {
//       // 如果不是登录页但是不携带token 跳转到首页
//       next('/login')
//     }
//   } else {
//     // 进入登录页面 放行
//     next()
//   }
// })
// 白名单
// const whiteList = ['/login']
// router.beforeEach((to, from, next) => {
//   // 判断是否已经登录
//   if (localStorage.getItem('token')) {
//     // console.log(1)
//     // 判断是登录页面并且携带token 跳转到 首页
//     if (to.path === '/login') {
//       next('/')
//     } else {
//       next()
//     }
//   } else {
//     // next()
//     if (whiteList.indexOf(to.path) !== -1) {
//       console.log(2)
//       next()
//     } else {
//       next(`/login?redirect=${to.path}`)
//     }
//   }
// })

// router.afterEach(() => {
//   // console.log(1)
//   // finish progress bar
//   // NProgress.done()
// })
router.beforeEach((to, from, next) => {
  console.log(to)
  next()
})

export default router
